package com.wuad.platformwuad.component.rabbitMq1;

import lombok.extern.slf4j.Slf4j;
//import org.springframework.amqp.core.Message;
//import org.springframework.amqp.rabbit.annotation.*;
//import org.springframework.amqp.support.AmqpHeaders;
//import org.springframework.messaging.handler.annotation.Headers;
//import org.springframework.stereotype.Component;
//import com.rabbitmq.client.Channel;

import java.io.IOException;
import java.util.Map;


/**
 * RabbitMQ消费者
 * 监听
 */
@Slf4j
//@Component
//@RabbitListener(queues = "TestDirectQueue") //监听的队列名称 TestDirectQueue
public class ReceiveMsgForRabbit {

//    @RabbitHandler
//    public void process(Map testMessage, Channel channel, Message message) {
//        try {
//
//            System.out.println("DirectReceiver消费者收到消息  : " + testMessage.toString());
//            //具体的业务逻辑处理，数据处理，入库等操作
//
//            System.out.println("确认消息");
//            //手动签收
//            channel.basicAck(message.getMessageProperties().getDeliveryTag(), false);
//        }  catch (Exception e) {
//            //是否是重新回到队列的消息
//            //这里有一个问题就是，代码错误的话回无限的重新接受消息，从而是cpu急剧上升
//            System.out.println("消息即将再次返回队列处理...");
//            try {
//                //第一个boolean：是否允许多条处理
//                //第二个boolean：是否重新回到队列
//                channel.basicNack(message.getMessageProperties().getDeliveryTag(), false, true);
//            } catch (IOException ie) {
//                e.printStackTrace();
//            }
//
//        }
//    }
}

